home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.0 / PInterfaces / StandardFile.p < prev    next >
Encoding:
Text File  |  1995-04-18  |  9.3 KB  |  290 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        StandardFile.p
  3.  
  4.      Contains:    Standard File package Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT StandardFile;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __STANDARDFILE__}
  30. {$SETC __STANDARDFILE__ := 1}
  31.  
  32. {$I+}
  33. {$SETC StandardFileIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {    ConditionalMacros.p                                            }
  41.  
  42. {$IFC UNDEFINED __DIALOGS__}
  43. {$I Dialogs.p}
  44. {$ENDC}
  45. {    Errors.p                                                    }
  46. {    Memory.p                                                    }
  47. {        MixedMode.p                                                }
  48. {    Windows.p                                                    }
  49. {        Quickdraw.p                                                }
  50. {            QuickdrawText.p                                        }
  51. {        Events.p                                                }
  52. {            OSUtils.p                                            }
  53. {        Controls.p                                                }
  54. {            Menus.p                                                }
  55. {    TextEdit.p                                                    }
  56.  
  57. {$IFC UNDEFINED __FILES__}
  58. {$I Files.p}
  59. {$ENDC}
  60.  
  61. {$PUSH}
  62. {$ALIGN MAC68K}
  63. {$LibExport+}
  64.  
  65. CONST
  66. { resource IDs and item offsets of pre-7.0 dialogs }
  67.     putDlgID                    = -3999;
  68.     putSave                        = 1;
  69.     putCancel                    = 2;
  70.     putEject                    = 5;
  71.     putDrive                    = 6;
  72.     putName                        = 7;
  73.     getDlgID                    = -4000;
  74.     getOpen                        = 1;
  75.     getCancel                    = 3;
  76.     getEject                    = 5;
  77.     getDrive                    = 6;
  78.     getNmList                    = 7;
  79.     getScroll                    = 8;
  80. { resource IDs and item offsets of 7.0 dialogs }
  81.     sfPutDialogID                = -6043;
  82.     sfGetDialogID                = -6042;
  83.     sfItemOpenButton            = 1;
  84.     sfItemCancelButton            = 2;
  85.     sfItemBalloonHelp            = 3;
  86.     sfItemVolumeUser            = 4;
  87.     sfItemEjectButton            = 5;
  88.  
  89.     sfItemDesktopButton            = 6;
  90.     sfItemFileListUser            = 7;
  91.     sfItemPopUpMenuUser            = 8;
  92.     sfItemDividerLinePict        = 9;
  93.     sfItemFileNameTextEdit        = 10;
  94.     sfItemPromptStaticText        = 11;
  95.     sfItemNewFolderUser            = 12;
  96. { pseudo-item hits for use in DlgHook }
  97.     sfHookFirstCall                = -1;
  98.     sfHookCharOffset            = $1000;
  99.     sfHookNullEvent                = 100;
  100.     sfHookRebuildList            = 101;
  101.     sfHookFolderPopUp            = 102;
  102.     sfHookOpenFolder            = 103;
  103. { the following are only in system 7.0+ }
  104.     sfHookOpenAlias                = 104;
  105.     sfHookGoToDesktop            = 105;
  106.     sfHookGoToAliasTarget        = 106;
  107.     sfHookGoToParent            = 107;
  108.     sfHookGoToNextDrive            = 108;
  109.     sfHookGoToPrevDrive            = 109;
  110.     sfHookChangeSelection        = 110;
  111.  
  112.     sfHookSetActiveOffset        = 200;
  113.     sfHookLastCall                = -2;
  114.  
  115. { the refcon field of the dialog record during a
  116.  modalfilter or dialoghook contains one of the following }
  117.     sfMainDialogRefCon            = 'stdf';
  118.     sfNewFolderDialogRefCon        = 'nfdr';
  119.     sfReplaceDialogRefCon        = 'rplc';
  120.     sfStatWarnDialogRefCon        = 'stat';
  121.     sfLockWarnDialogRefCon        = 'lock';
  122.     sfErrorDialogRefCon            = 'err ';
  123.  
  124.  
  125. TYPE
  126.     SFReply = RECORD
  127.         good:                    BOOLEAN;
  128.         copy:                    BOOLEAN;
  129.         fType:                    OSType;
  130.         vRefNum:                INTEGER;
  131.         version:                INTEGER;
  132.         fName:                    Str63;
  133.     END;
  134.  
  135.     StandardFileReply = RECORD
  136.         sfGood:                    BOOLEAN;
  137.         sfReplacing:            BOOLEAN;
  138.         sfType:                    OSType;
  139.         sfFile:                    FSSpec;
  140.         sfScript:                ScriptCode;
  141.         sfFlags:                INTEGER;
  142.         sfIsFolder:                BOOLEAN;
  143.         sfIsVolume:                BOOLEAN;
  144.         sfReserved1:            LONGINT;
  145.         sfReserved2:            INTEGER;
  146.     END;
  147.  
  148. { for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers }
  149.     ActivationOrderListPtr = ^INTEGER;
  150.  
  151. { the following also include an extra parameter of "your data pointer" }
  152.     DlgHookProcPtr = ProcPtr;  { FUNCTION DlgHook(item: INTEGER; theDialog: DialogPtr): INTEGER; }
  153.     FileFilterProcPtr = ProcPtr;  { FUNCTION FileFilter(pb: CInfoPBPtr): BOOLEAN; }
  154.     DlgHookYDProcPtr = ProcPtr;  { FUNCTION DlgHookYD(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER; }
  155.     ModalFilterYDProcPtr = ProcPtr;  { FUNCTION ModalFilterYD(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN; }
  156.     FileFilterYDProcPtr = ProcPtr;  { FUNCTION FileFilterYD(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN; }
  157.     ActivateYDProcPtr = ProcPtr;  { PROCEDURE ActivateYD(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr); }
  158.     DlgHookUPP = UniversalProcPtr;
  159.     FileFilterUPP = UniversalProcPtr;
  160.     DlgHookYDUPP = UniversalProcPtr;
  161.     ModalFilterYDUPP = UniversalProcPtr;
  162.     FileFilterYDUPP = UniversalProcPtr;
  163.     ActivateYDUPP = UniversalProcPtr;
  164.  
  165. CONST
  166.     uppDlgHookProcInfo = $000003A0; { FUNCTION (2 byte param, 4 byte param): 2 byte result; }
  167.     uppFileFilterProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  168.     uppDlgHookYDProcInfo = $00000FA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  169.     uppModalFilterYDProcInfo = $00003FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  170.     uppFileFilterYDProcInfo = $000003D0; { FUNCTION (4 byte param, 4 byte param): 1 byte result; }
  171.     uppActivateYDProcInfo = $000036C0; { PROCEDURE (4 byte param, 2 byte param, 1 byte param, 4 byte param); }
  172.  
  173. FUNCTION NewDlgHookProc(userRoutine: DlgHookProcPtr): DlgHookUPP;
  174.     {$IFC NOT GENERATINGCFM }
  175.     INLINE $2E9F;
  176.     {$ENDC}
  177.  
  178. FUNCTION NewFileFilterProc(userRoutine: FileFilterProcPtr): FileFilterUPP;
  179.     {$IFC NOT GENERATINGCFM }
  180.     INLINE $2E9F;
  181.     {$ENDC}
  182.  
  183. FUNCTION NewDlgHookYDProc(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  184.     {$IFC NOT GENERATINGCFM }
  185.     INLINE $2E9F;
  186.     {$ENDC}
  187.  
  188. FUNCTION NewModalFilterYDProc(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  189.     {$IFC NOT GENERATINGCFM }
  190.     INLINE $2E9F;
  191.     {$ENDC}
  192.  
  193. FUNCTION NewFileFilterYDProc(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  194.     {$IFC NOT GENERATINGCFM }
  195.     INLINE $2E9F;
  196.     {$ENDC}
  197.  
  198. FUNCTION NewActivateYDProc(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  199.     {$IFC NOT GENERATINGCFM }
  200.     INLINE $2E9F;
  201.     {$ENDC}
  202.  
  203. FUNCTION CallDlgHookProc(item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  204.     {$IFC NOT GENERATINGCFM}
  205.     INLINE $205F, $4E90;
  206.     {$ENDC}
  207.  
  208. FUNCTION CallFileFilterProc(pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  209.     {$IFC NOT GENERATINGCFM}
  210.     INLINE $205F, $4E90;
  211.     {$ENDC}
  212.  
  213. FUNCTION CallDlgHookYDProc(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  214.     {$IFC NOT GENERATINGCFM}
  215.     INLINE $205F, $4E90;
  216.     {$ENDC}
  217.  
  218. FUNCTION CallModalFilterYDProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  219.     {$IFC NOT GENERATINGCFM}
  220.     INLINE $205F, $4E90;
  221.     {$ENDC}
  222.  
  223. FUNCTION CallFileFilterYDProc(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  224.     {$IFC NOT GENERATINGCFM}
  225.     INLINE $205F, $4E90;
  226.     {$ENDC}
  227.  
  228. PROCEDURE CallActivateYDProc(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr; userRoutine: ActivateYDUPP);
  229.     {$IFC NOT GENERATINGCFM}
  230.     INLINE $205F, $4E90;
  231.     {$ENDC}
  232.     
  233. TYPE
  234.     SFTypeList = ARRAY [0..3] OF OSType;
  235.  
  236. {
  237.     The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  238.     For C, this will add "const" and make it an in-only parameter.
  239.     For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.
  240.  
  241.     ConstSFTypeListPtr is a pointer to an array of OSTypes.
  242. }
  243.     ConstSFTypeListPtr = ^OSType;
  244.  
  245.  
  246. PROCEDURE SFPutFile(where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply);
  247.     {$IFC NOT GENERATINGCFM}
  248.     INLINE $3F3C, $0001, $A9EA;
  249.     {$ENDC}
  250. PROCEDURE SFGetFile(where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply);
  251.     {$IFC NOT GENERATINGCFM}
  252.     INLINE $3F3C, $0002, $A9EA;
  253.     {$ENDC}
  254. PROCEDURE SFPPutFile(where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  255.     {$IFC NOT GENERATINGCFM}
  256.     INLINE $3F3C, $0003, $A9EA;
  257.     {$ENDC}
  258. PROCEDURE SFPGetFile(where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  259.     {$IFC NOT GENERATINGCFM}
  260.     INLINE $3F3C, $0004, $A9EA;
  261.     {$ENDC}
  262. PROCEDURE StandardPutFile(prompt: ConstStr255Param; defaultName: ConstStr255Param; VAR reply: StandardFileReply);
  263.     {$IFC NOT GENERATINGCFM}
  264.     INLINE $3F3C, $0005, $A9EA;
  265.     {$ENDC}
  266. PROCEDURE StandardGetFile(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply);
  267.     {$IFC NOT GENERATINGCFM}
  268.     INLINE $3F3C, $0006, $A9EA;
  269.     {$ENDC}
  270. PROCEDURE CustomPutFile(prompt: ConstStr255Param; defaultName: ConstStr255Param; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  271.     {$IFC NOT GENERATINGCFM}
  272.     INLINE $3F3C, $0007, $A9EA;
  273.     {$ENDC}
  274. PROCEDURE CustomGetFile(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  275.     {$IFC NOT GENERATINGCFM}
  276.     INLINE $3F3C, $0008, $A9EA;
  277.     {$ENDC}
  278. FUNCTION StandardOpenDialog(VAR reply: StandardFileReply): OSErr;
  279.  
  280. {$ALIGN RESET}
  281. {$POP}
  282.  
  283. {$SETC UsingIncludes := StandardFileIncludes}
  284.  
  285. {$ENDC} {__STANDARDFILE__}
  286.  
  287. {$IFC NOT UsingIncludes}
  288.  END.
  289. {$ENDC}
  290.